<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>
<HEAD>
   <TITLE>class  OSGPARTICLE_EXPORT osgParticle::ParticleProcessor</TITLE>
   <META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">

<H2>class  OSGPARTICLE_EXPORT <A HREF="#DOC.DOCU">osgParticle::ParticleProcessor</A></H2></H2><BLOCKQUOTE>A common base interface for those classes which need to do something on particles.</BLOCKQUOTE>
<HR>

<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=125>
<param name=classes value="Mosg::Node,M,CParticleProcessor,MParticleProcessor.html,CProgram,MProgram.html,CEmitter,MEmitter.html">
<param name=before value="M,M,M|_,Mr_">
<param name=after value="Md_,M,M,M">
<param name=indent value="0,1,1,1">
<param name=arrowdir value="down">
</APPLET>
<HR>

<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.14.2">ParticleProcessor</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.14.3">ParticleProcessor</A></B>(const <!1><A HREF="ParticleProcessor.html#DOC.2.14.3">ParticleProcessor</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual   const char* <B><A HREF="#DOC.2.14.4">className</A></B>() const 
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual   bool <B><A HREF="#DOC.2.14.5">isSameKindAs</A></B>(const osg::Object* obj) const 
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual   void <B><A HREF="#DOC.2.14.6">accept</A></B>(osg::NodeVisitor&amp; nv)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   <!1><A HREF="ParticleProcessor.html#DOC.2.14.1">ReferenceFrame</A> <B><A HREF="#DOC.2.14.7">getReferenceFrame</A></B>() const 
<DD><I>Get the reference frame</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.14.8">traverse</A></B>(osg::NodeVisitor &amp;nv)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   ParticleProcessor::ReferenceFrame <B><A HREF="#DOC.2.14.21">getReferenceFrame</A></B>() const 
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   void <B><A HREF="#DOC.2.14.22">setReferenceFrame</A></B>(<!1><A HREF="ParticleProcessor.html#DOC.2.14.1">ReferenceFrame</A> rf)
<DD><I>Set the reference frame</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   bool <B><A HREF="#DOC.2.14.23">isEnabled</A></B>() const 
<DD><I>Get whether this processor is enabled or not</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   void <B><A HREF="#DOC.2.14.24">setEnabled</A></B>(bool v)
<DD><I>Set whether this processor is enabled or not</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* <B><A HREF="#DOC.2.14.25">getParticleSystem</A></B>()
<DD><I>Get a pointer to the destination particle system</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   const <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* <B><A HREF="#DOC.2.14.26">getParticleSystem</A></B>() const 
<DD><I>Get a const pointer to the destination particle system</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   void <B><A HREF="#DOC.2.14.27">setParticleSystem</A></B>(<!1><A HREF="ParticleSystem.html">ParticleSystem</A>* ps)
<DD><I>Set the destination particle system</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   const bool <B><A HREF="#DOC.2.14.28">computeBound</A></B>() const 
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   const osg::Matrix&amp; <B><A HREF="#DOC.2.14.29">getLocalToWorldMatrix</A></B>()
<DD><I>Get the current local-to-world transformation matrix (valid only during cull traversal)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   const osg::Matrix&amp; <B><A HREF="#DOC.2.14.30">getWorldToLocalMatrix</A></B>()
<DD><I>Get the current world-to-local transformation matrix (valid only during cull traversal)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   osg::Vec3 <B><A HREF="#DOC.2.14.31">transformLocalToWorld</A></B>(const osg::Vec3 &amp;P)
<DD><I>Transform a point from local to world coordinates (valid only during cull traversal)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   osg::Vec3 <B><A HREF="#DOC.2.14.32">transformWorldToLocal</A></B>(const osg::Vec3 &amp;P)
<DD><I>Transform a point from world to local coordinates (valid only during cull traversal)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   osg::Vec3 <B><A HREF="#DOC.2.14.33">rotateLocalToWorld</A></B>(const osg::Vec3 &amp;P)
<DD><I>Transform a vector from local to world coordinates, discarding translation (valid only during cull traversal)</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   osg::Vec3 <B><A HREF="#DOC.2.14.34">rotateWorldToLocal</A></B>(const osg::Vec3 &amp;P)
<DD><I>Transform a vector from world to local coordinates, discarding translation (valid only during cull traversal)</I>
</DL></P>

<P><DL>
<DT><H3>Public Members</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>enum  <B><A HREF="#DOC.2.14.1">ReferenceFrame</A></B>
</DL></P>

<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual   <B><A HREF="#DOC.2.14.9">~ParticleProcessor</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="ParticleProcessor.html">ParticleProcessor</A>&amp; <B><A HREF="#DOC.2.14.10">operator=</A></B>(const <!1><A HREF="ParticleProcessor.html">ParticleProcessor</A> &amp;)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual   void <B><A HREF="#DOC.2.14.11">process</A></B>(double dt) = 0
</DL></P>

</DL>

<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>A common base interface for those classes which need to do something on particles. Such classes
are, for example, <CODE>Emitter</CODE> (particle generation) and <CODE>Program</CODE> (particle animation).
This class holds some properties, like a <I>reference frame</I> and a reference to a <CODE>ParticleSystem<CODE>;
descendant classes should process the particles taking into account the reference frame, computing the right
transformations when needed.</BLOCKQUOTE>
<DL>

<A NAME="ReferenceFrame"></A>
<A NAME="DOC.2.14.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>enum  ReferenceFrame</B></TT>
<DL><DT><DD></DL><P><DL>

<A NAME="RELATIVE_TO_PARENTS"></A>
<A NAME="DOC.2.14.1.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> RELATIVE_TO_PARENTS</B></TT>
<DL><DT><DD></DL><P>
<A NAME="RELATIVE_TO_ABSOLUTE"></A>
<A NAME="DOC.2.14.1.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> RELATIVE_TO_ABSOLUTE</B></TT>
<DL><DT><DD></DL><P></DL>

<A NAME="ParticleProcessor"></A>
<A NAME="DOC.2.14.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ParticleProcessor()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ParticleProcessor"></A>
<A NAME="DOC.2.14.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ParticleProcessor(const <!1><A HREF="ParticleProcessor.html#DOC.2.14.3">ParticleProcessor</A> &amp;copy, const osg::CopyOp &amp;copyop = osg::CopyOp::SHALLOW_COPY)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="className"></A>
<A NAME="DOC.2.14.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual   const char* className() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="isSameKindAs"></A>
<A NAME="DOC.2.14.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual   bool isSameKindAs(const osg::Object* obj) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="accept"></A>
<A NAME="DOC.2.14.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual   void accept(osg::NodeVisitor&amp; nv)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getReferenceFrame"></A>
<A NAME="DOC.2.14.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   <!1><A HREF="ParticleProcessor.html#DOC.2.14.1">ReferenceFrame</A> getReferenceFrame() const </B></TT>
<DD>Get the reference frame
<DL><DT><DD></DL><P>
<A NAME="traverse"></A>
<A NAME="DOC.2.14.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void traverse(osg::NodeVisitor &amp;nv)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="~ParticleProcessor"></A>
<A NAME="DOC.2.14.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual   ~ParticleProcessor()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator="></A>
<A NAME="DOC.2.14.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="ParticleProcessor.html">ParticleProcessor</A>&amp; operator=(const <!1><A HREF="ParticleProcessor.html">ParticleProcessor</A> &amp;)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="process"></A>
<A NAME="DOC.2.14.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual   void process(double dt) = 0</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getReferenceFrame"></A>
<A NAME="DOC.2.14.21"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   ParticleProcessor::ReferenceFrame getReferenceFrame() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="setReferenceFrame"></A>
<A NAME="DOC.2.14.22"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   void setReferenceFrame(<!1><A HREF="ParticleProcessor.html#DOC.2.14.1">ReferenceFrame</A> rf)</B></TT>
<DD>Set the reference frame
<DL><DT><DD></DL><P>
<A NAME="isEnabled"></A>
<A NAME="DOC.2.14.23"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   bool isEnabled() const </B></TT>
<DD>Get whether this processor is enabled or not
<DL><DT><DD></DL><P>
<A NAME="setEnabled"></A>
<A NAME="DOC.2.14.24"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   void setEnabled(bool v)</B></TT>
<DD>Set whether this processor is enabled or not
<DL><DT><DD></DL><P>
<A NAME="getParticleSystem"></A>
<A NAME="DOC.2.14.25"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* getParticleSystem()</B></TT>
<DD>Get a pointer to the destination particle system
<DL><DT><DD></DL><P>
<A NAME="getParticleSystem"></A>
<A NAME="DOC.2.14.26"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   const <!1><A HREF="ParticleSystem.html">ParticleSystem</A>* getParticleSystem() const </B></TT>
<DD>Get a const pointer to the destination particle system
<DL><DT><DD></DL><P>
<A NAME="setParticleSystem"></A>
<A NAME="DOC.2.14.27"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   void setParticleSystem(<!1><A HREF="ParticleSystem.html">ParticleSystem</A>* ps)</B></TT>
<DD>Set the destination particle system
<DL><DT><DD></DL><P>
<A NAME="computeBound"></A>
<A NAME="DOC.2.14.28"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   const bool computeBound() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="getLocalToWorldMatrix"></A>
<A NAME="DOC.2.14.29"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   const osg::Matrix&amp; getLocalToWorldMatrix()</B></TT>
<DD>Get the current local-to-world transformation matrix (valid only during cull traversal)
<DL><DT><DD></DL><P>
<A NAME="getWorldToLocalMatrix"></A>
<A NAME="DOC.2.14.30"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   const osg::Matrix&amp; getWorldToLocalMatrix()</B></TT>
<DD>Get the current world-to-local transformation matrix (valid only during cull traversal)
<DL><DT><DD></DL><P>
<A NAME="transformLocalToWorld"></A>
<A NAME="DOC.2.14.31"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   osg::Vec3 transformLocalToWorld(const osg::Vec3 &amp;P)</B></TT>
<DD>Transform a point from local to world coordinates (valid only during cull traversal)
<DL><DT><DD></DL><P>
<A NAME="transformWorldToLocal"></A>
<A NAME="DOC.2.14.32"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   osg::Vec3 transformWorldToLocal(const osg::Vec3 &amp;P)</B></TT>
<DD>Transform a point from world to local coordinates (valid only during cull traversal)
<DL><DT><DD></DL><P>
<A NAME="rotateLocalToWorld"></A>
<A NAME="DOC.2.14.33"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   osg::Vec3 rotateLocalToWorld(const osg::Vec3 &amp;P)</B></TT>
<DD>Transform a vector from local to world coordinates, discarding translation (valid only during cull traversal)
<DL><DT><DD></DL><P>
<A NAME="rotateWorldToLocal"></A>
<A NAME="DOC.2.14.34"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   osg::Vec3 rotateWorldToLocal(const osg::Vec3 &amp;P)</B></TT>
<DD>Transform a vector from world to local coordinates, discarding translation (valid only during cull traversal)
<DL><DT><DD></DL><P></DL>
<HR>
<DL><DT><B>Direct child classes:
</B><DD><A HREF="Program.html">Program</A><BR>
<A HREF="Emitter.html">Emitter</A><BR>
</DL>

<DL><DT><DD></DL><P><P><I><A HREF="index.html">Alphabetic index</A></I> <I><A HREF="HIER.html">HTML hierarchy of classes</A> or <A HREF="HIERjava.html">Java</A></I></P><HR>
<BR>
This page was generated with the help of <A HREF="http://docpp.sourceforge.net">DOC++</A>.
</BODY>
</HTML>
